Liesmich zum GLIDE3-zu-OpenGL-Wrapper Version 1.4e (c) 2010 by Sven Labusch

Aufbau:
1. Vorwort
2. "Lieferumfang"
3. Anforderungen
4. Installation/Deinstallation
5. Dateibeschreibungen
6. Hinweise/technische Aspekte
7. Versions-nderungen
8. Hufig gestellte Fragen
9. Sonstiges


                              1. Vorwort


Erstmal hallo allerseits!
um es kurz zu fassen: mich hat die Leistung, die Diablo2 unter Direct3D an den Tag legt genervt.
Da Diablo2 mit der Glide-Schnittstelle eine bessere Figur macht, war es fr mich naheliegend, irgendwie zu versuchen, dass das Spiel auch auf meinem Rechner mit Glide laufen kann. Dabei gab es zwei Probleme:
1. Glide-Treiber gibt es nur fr Voodoo-Karten. Diablo2 braucht Voodoo-Karten ab dem Typ Voodoo-Rush, dummerweise hat mein Rechner aber 'ne Geforce2MX.
2. Glide-Wrapper gibt es viele, aber leider habe ich keinen finden knnen, der fr mich zufriedenstellend mit Diablo2 luft.
Nachdem auch der Patch 1.10 keine Besserung mit sich brachte, beschloss ich mich selbst daran zu setzen. Das Ergebnis ist dieser Wrapper, bei dem ich nochmal extra betonen mchte:
Dieser Glide-Wrapper ist explizit fr das Spiel Diablo2 programmiert, es ist davon auszugehen, dass er mit anderen Programmen NICHT luft, oder zumindest keine korrekte Anzeige liefert.

Nachtrag:
Dies ist die Version 1.4e von dem Wrapper.
Und ein Dankeschn an "Seltsamuel", "Shabazza", "Luzi", "mindphlux", "UnserenToten", "ChaosEnergy", "acesulfam", "Seltsamuel" und dem Staff aus dem inDiablo.de-Forum, welche mir geholfen haben.


                              2. "Lieferumfang"


4 Dateien:

glide-liesmich.txt  34366 Byte
glide-readme.txt    29535 Byte
glide-init.exe      134144 Byte
glide3x.dll         138752 Byte



                              3. Anforderungen


Bentigt (="damit er berhaupt funktioniert"):
- OpenGL-konforme Grafikkarte
- ansonsten gleiche Anforderungen wie das Spiel selbst
Empfohlen (="damit man auch was von hat"):
- OpenGL1.3-konforme Grafikkarte
- Grafikkarte ab dem Kaliber einer Geforce256 mit 32MB Grafikspeicher
- mind. 256MB Hauptspeicher
NICHT empfohlen (=weil's damit u.U. schlechter luft als vorher):
- jedwede Art von Grafikkarte mit shared-memory-Architektur
kann man natrlich trotzdem versuchen, aber eine Verbesserung halte ich fr unwahrscheinlich


                              4. Installation/Deinstallation


Es gibt 2 Mglichkeiten zur Installation:
1. Die Datei "glide3x.dll" in das Windows-Systemverzeichnis (z.B. "c:\windows\system") kopieren
2. Die Datei "glide3x.dll" in das Spiele-Verzeichnis (z.B. "c:\spiele\diablo2") kopieren

Da Dieser Wrapper ausschliesslich fr Diablo2 programmiert ist, empfehle ich den 2.Weg
Sind die Dateien kopiert, muss im Anschluss noch der Vid-Test von Diablo2 ausgefhrt und Glide ausgewhlt werden.


Fr die Deinstallation empfehle ich folgende Vorgehensweise:
1. Die glide-init.exe starten und dort unter "Std/Export" den Punkt "+Registry-Eintrge lschen" anwhlen.
2. Die Wrapper-Dateien lschen
3. Im Vid-Test von Diablo2 den Grafikmodus wechseln.


                              5.Dateibeschreibungen


   glide-liesmich.txt:
Das ist die Datei die sie gerade lesen.

   glide-readme.txt:
Wie die glide-liesmich.txt, nur auf englisch.

   glide3x.dll:
Das ist der eigentliche Wrapper.
Sollte der Wrapper von sich aus einen Fehler bemerken, so wird eine Datei Namens "gl32ogl.err" erstellt, in welcher der Fehler beschrieben wird.

   glide-init.exe:
Hiermit knnen einige Einstellungen am Wrapper verndert werden. Das Programm ist dabei in mehrere Bereiche aufgeteilt:
Links ist das Hauptmenu,
in der Mitte knnen die eigentlichen Parameter eingestellt werden,
Rechts ist ein Info-Screen, der evtl. Hilfen zu den Parameter-Einstellungen geben kann
und Unten wird der Inhalt der glide-liesmich.txt(bzw. glide-readme.txt) angezeigt.
nderungen an den Einstellungen werden in der Registry gespeichert.

Im Hauptmenu gibt es folgende Wahlmglichkeiten:

OpenGL-Infos
Einstellungen
Renderer
Wrapper-Anzeige
Extensions
Std/Export
Test
Deutsch/English
Beenden

Die Parameter-Einstellungsmglichkeiten sind abhngig davon, welches Menu man im Hauptmenu gewhlt hat:

    OpenGL-Infos:

Hier kann nichts direkt eingestellt werden. Dieses Menu dient dazu, vom OpenGL-Treiber Informationen einzuholen, wieviel Grafikspeicher installiert ist, wie gro die Texturen maximal sein drfen und welche Extensions berhaupt untersttzt werden,...
Diese Informationen mssen bei Bedarf manuell eingeholt werden, indem man auf "OpenGL-Infos einholen" klickt.
Es ist mglich, dass nach Einholen der Infos der OpenGL-Treiber auf dem Rechner evtl. nachfolgende Testlufe nicht richtig durchfhrt, in dem Fall bitte das Programm erst beenden, bevor ein erneuter Testlauf gestartet wird.

    Einstellungen:

Hier knnen generelle Haupteinstellungen vorgenommen werden:

Fenstermodus:
 Wenn aktiviert wird das Spiel im Fenstermodus dargestellt ansonsten im Vollbildmodus (unabhngig davon, ob bei der Spiel-Verknpfung der Parameter "-w" vorhanden ist, oder nicht). Nichts desto trotz: ich empfehle den Start-Parameter "-w" bei der Spiel-Verknpfung anzufgen, wenn man im Fenstermodus spielen will, um ein Umherspringen des Mauszeigers bei Inventar-ffnen/Schliessen zu vermeiden.

Maus begrenzen:
 Es wird verhindert, dass die Maus das Spiel-Fenster verlsst.

festes Seitenverhltnis:
 Wenn aktiviert, wird bei skaliertem Fenster bzw. bei Desktopauflsung das Bild 4/3-Seitenverhltnis gerendert. Eventuell zustzlicher Platz im Fenster/auf dem Bildschirm wird mit schwarzen Balken aufgefllt.

vertikale Synchronisation(VSYNC):
 Wenn aktiviert, wird der Bildwechsel vom Spiel mit dem Bildwechsel vom Monitor gleichgeschaltet. Die Framerate von dem Spiel kann dann dadurch nicht hher werden, als die Bildwiederholfrequenz vom Monitor, was auch vernnftig ist:
wenn der Monitor z.B. nur 100 Bilder pro Sekunde darstellen kann, warum sollte das Spiel dann z.B. 150 Bilder pro Sekunde berechnen? 50 davon landen dann doch ungesehen im "Mll".
Naja, man knnte sehen, wieviel Reserven der Computer noch hat, aber ansonsten.....

FPS-Limit:
 Hier kann angegeben werden, welche Framerate der Wrapper maximal liefern soll. Ist eigentlich nur ntig, wenn VSYNC nicht funktioniert, man aber trotzdem Grafikkarte und Prozessor schonen mchte.

feste Gre:
 Hier kann angegeben werden, ob das Spiele-Fenster auf eine ganz bestimmte Gre gezogen werden soll. Wenn hier eine bestimmte Gre angegeben ist und der Fesntermodus deaktivert ist, wird der Rest des Bildschirms schwarz dargestellt.

Fenster extras:
 Wenn aktiviert, wird das Spiel-Fenster um die Mglichkeit erweitert, in der Gre gendert zu werden. Der Fensterinhalt wird dann dementsprechend vergrert oder verkleinert, was allerdings die Grafikqualitt nicht wirklich verbessert.

Zentriert: (nur im Fenstermodus)
 Wenn aktiviert und im Fenstermodus gerendert wird, wird das Fenster automatisch auf dem Bildschirm zentriert.

Position merken: (nur im Fenstermodus)
 Wenn aktiviert, merkt sich der wrapper die Position des fensters, sodass es nach Programm-Neustart wieder dort erscheint, wo es vorher war.

Bildwiederholfrequenz: (nur im Vollbildmodus)
 Wenn das Spiel im Vollbildmodus gerendert wird, kann hier eingestellt werden, mit welcher Bildwiederholrate der Monitor betrieben werden soll. Welche Einstell-Mglichkeiten zur Verfgung stehen hngt dabei ganz vom Betriebssystem, Grafikkarte, Monitor usw. ab.

Desktopauflsung: (nur im Vollbildmodus)
 Wenn aktiviert und das Spiel im Vollbildmodus Dargestellt wird, wird an der Bildschirm auflsung nichts verndert: das Spiel rendert also in der Desktopauflsung. Eingefgt habe ich diese Funktion, da mir schon einige TFT-Bildschirme vor die Nase gekommen sind, welche die Auflsung 800x600 nicht zufriedenstellend darstellen konnten. Wie auch fr "Fenster extras" gilt: die Bildqualitt wird dadurch im Normalfall nicht verbessert.

    Renderer:

Hier werden Einstellungen vorgenommen, die die Render-Engine vom Wrapper selbst betreffen:

Textur-Speicher:
 Hier kann eingestellt werden, wieviel zur Verfgung stehender Textur-Speicher an das Spiel gemeldet werden soll. Es ist zu beachten, keinen zu groen Wert einzustellen, da sonst der Grafikkarten-Treiber mit dem unntigen Auslagern von texturen Beschftigt wird. Einige Treiber kommen damit sogar berhaupt nicht klar, und es kommt zu Textur-Fehlern (z.B. schwarze Bereiche in der Landschaft).
Welcher Wert jetzt nun aber der Optimale Wert ist, ist ganz von dem Rechner, den Einstellungen und auch den Treibern abhngig. Wurden OpenGL-Infos eingeholt wird unter Parameter-Infos eine Schtzung abgegeben, welcher Wert wohl gut sein knnte, allerdings ist dieser Wert grozgig nach Unten hin abgeschtzt, sodass ein testweises hhersetzen durchaus noch eine Verbesserung der Leistung bewirken kann.

Puffer-Textur-Gre:
 Hier wird eingestellt, wie Gro die Puffer-Texturen des Wrappers sein sollen. Je kleiner die Puffer-Texturen, desto mehr Spiel-Texturen passen auf die Grafikkarte,
allerdings: je grer die Puffer-Texturen, desto mehr Spiel-Texturen passen gleichzeitig in eine Puffer-Textur.
welches der Beste Wert ist, hngt von der gre des Textur-Speichers auf der Grafikkarte ab. Aber pauschal wrde ich mal sagen, das 1024x1024 ein brauchbarere Wert ist.

32 Bit Rendern:
 Wenn aktiviert und im Vollbildmodus gerendert wird, wird der Monitor auf 32 Bit Farbtiefe gestellt und der Wrapper rendert mit 32 Bit genauigkeit statt der Ansonsten 16 Bit.
Ob nun 16 oder 32 Bit besser sind, hngt von der Grafikkarte ab, neuere Grafikkarten kommen besser mit 32 Bit zurecht, ltere mit 16.

Textur fr Videos:
 Wenn aktiviert, werden Videos nicht direkt auf dem Bildschirm dargestellt, sondern ber eine Textur. Bei einigen Grafikkarten-Treibern funktioniert das auch tatschlich schneller.

Bilinearer Filter:
 Wenn aktiviert , rendert der Wrapper erst in eine Textur und von dort dann auf den Bildschirm. Dieser Zwischenschritt reduziert zwar die Framerate, sorgt bei Desktop-Auflsung aber fr eine bessere Grafik.

Supersampling:
 Wenn aktiviert und "WGL_ARB_render_texture" ebenfalls aktiviert, wird das Bild erst in vierfacher Auflsung gerendert und danach auf die richtige Gre gestutzt. Reduziert die Framerate zwar noch einmal, gibt dem Bild aber ein wenig mehr an Schrfe.

Shader-Gamma:
 Wenn aktiviert , wird die Gamma/Kontrast-Einstellung von dem Spiel ber Shader realisiert. Reduziert wiederrum die Framerate, hat aber auch Vorteile: Screenshots sind gammakorrekt und im Fenstermodus wirkt sich die Gamma-Einstellung nur auf das Fenster aus.

kein Gamma:
 Wenn aktiviert, lsst der Wrapper die Gamma-Einstellung in Ruhe.

Desktopgestaltung erhalten:
 Wenn aktiviert, lsst der Wrapper die Einstellung der Desktopgestaltung so wie sie ist. Ansonsten wird sie deaktiviert, solange das Spiel luft.

    Wrapper-Anzeige:

Hier knnen Einstellungen vorgenommen werden, die die Darstellung von Statusinformationen im Spiel betreffen:

Infos anzeigen:
 Hier wird ausgewhlt in welcher Ecke des Bildschirms die Informationen gezeigt werden sollen.

Framerate:
 Wenn aktiviert, zeigt der Wrapper die Framerate mit an, welche sekndlich aktualisiert wird. Da der Wrapper die Framerate unabhngig vom Spiel ermittelt ist eine eventuelle Abweichung von der Frameraten-Anzeige des Spiels selbst nicht ungewhnlich.

Uhr:
 Wenn ausgewhlt, wird die Uhrzeit mit angegeben (im entsprechenden Stil). Die Uhrzeit-Angabe entspricht dabei dem Wert, der sonst auch in der Taskleiste angezeigt wird.

Texturmasse:
 Wenn aktiviert, gibt der Wrapper auch an, wieviel Textur-Speicher fr die Puffer-Texturen gerade bentigt werden. Dieser Wert sollte stets unterhalb dessen bleiben, was die Grafikkarte auch wirklich an Textur-Speicher besitzt. Wandert der Wert doch mal zu hoch, so empfehle ich, den simulierten Textur-Speicher zu verringern.

Reihenfolge:
 Ein Klick auf diesen Button verndert die Reihenfolge, in der die Daten auf dem Bildschitm dargestellt werden (was ist Unten, was Oben,...). Rechts bei den Parameter-Infos wird angezeigt, wie das dann in etwa spter aussieht. Wenn nur zwei Werte dargestellt werden sollen, muss man evtl. mehrfach klicken.

    Extensions:

Hier kann eingestellt werden, welche Extensions vom Wrapper benutzt werden sollen. Normalerweise braucht man hier nichts deaktivieren, es sei denn der OpenGL-Treiber macht Probleme, oder man will explizit was austesten....

GL_EXT_vertex_array:
 Wenn aktiviert und untersttzt, werden Vertex-Daten nicht umstndlich Stck fr Stck an den OpenGL-Treiber bergeben, sondern zuerst "gesammelt" und dann in einem Rutsch bertragen.

GL_ATI_fragment_shader:
GL_ARB_fragment_program:
GL_EXT_paletted_texture:
 Wenn eine dieser Extensions aktiviert ist und vom OpenGL-Treiber untersttzt wird, kann der Wrapper die 8-Bit-Texturen vom Spiel direkt verwenden. Ansonsten mssen sie in 16-Bit-Texturen konvertiert werden, was Zeit und Platz braucht.
Wenn mehrere dieser Extensions aktiviert sind, bekommt die EXT-Variante eine hhere Gewichtung, als die ARB-Variante, welche wiederrum hher gewichtet wird als die ATI-Variante.

GL_EXT_shared_texture_palette:
 Wenn der Wrapper die 8-Bit-Texturen des Spiels mittels GL_EXT_paletted_texture realisiert, kann hiermit eingestellt werden, ob alle Puffertexturen eine gemeinsame Palette benutzen sollen, oder ob jede ihre eigene bekommt (welche am Ende dann doch immer denselben Inhalt haben).

GL_EXT_packed_pixels:
 Wenn der Wrapper die 8-Bit-Texturen des Spiels ber 16-Bit-Texturen simulieren muss, kann mit dieser Extension das Nachladen von Texturen beschleunigt werden.

GL_EXT_texture_env_combine:
 Wenn der Wrapper die 8-Bit-Texturen des Spiels nicht mit Shadern realisiert, kann hiermit eine korrekte Berechnung einiger Transparenz-Effekte erzielt werden. Allerdings ist die sonstige Abweichung nur minimal.

WGL_EXT_swap_control:
 Wenn aktiviert und vom Treiber untersttzt, kann hier das manuelle Einstellen von der vertikalen Synchronisation ermglicht werden.

WGL_ARB_render_texture:
 Wenn aktiviert und von OpenGL untersttzt, rendert der Wrapper erst in eine Textur und von dort dann auf den Bildschirm. Dieser Zwischenschritt reduziert zwar die Framerate, sorgt bei Desktop-Auflsung bzw. vergertem oder verkleinertem Fenster fr eine bessere Grafik.

    Std/Export:

In diesem Menu knnen die Standardwere wiederhergestellt werden. Auerdem knnen die Einstellungen in eine TXT-Datei exportiert werden.

Standardwerte wiederherstellen:
 Stellt einfach nur alle Werte wieder auf Standard.

+Registry-Eintrge entfernen:
 Zustzlich werden die Eintrge, die fr den Wrapper in der Registry vorgenommen wurden, gelscht.

Exportiere Einstellungen:
 ffnet ein Dialogfenster zum speichern in eine Datei. Die Einstellungen werden dann in eine TXT-Datei exportiert.

    Test:

Dies ist eigentlich kein Menu, sondern es startet einen Testlauf, mit dem der Wrapper auf funktionalitt geprft werden kann, ohne dass man gleich das Spiel starten muss. Der Test sollte nach Mglichkeit eine Framerate ber 50 FPS erzielen, was aber auch nicht so schwer sein drfte....

    Deutsch/English

Hier kann ausgewhlt werden, in welcher Sprache der Wrapper (bzw. das Frontend) laufen sollen.

    Beenden:

Beendet das Programm


                              6.Hinweise/technische Aspekte


hmm ja, wo soll ich anfangen? ja genau, ich fange mal damit an, was den Wrapper vom Direct3D-Modus von Diablo2 unterscheidet:

1. Der Direct3D-Modus von Diablo2 erstellt wesentlich weniger Puffer-Texturen, als der Glide-Modus, wodurch hufiger nachgeladen werden muss.

2. Der Wrapper benutzt OpenGL, der Direct3D-Modus DirectX6
 Das Manko ist hierbei, dass DirectX6 keine 8-Bit-Paletten-Texturen untersttzt und Diablo2 daher 16-Bit-Texturen benutzen muss.

3. Desweiteren ist bei DirectX die Textur-Verwaltung anders als bei OpenGL und Glide:
Der Verwaltungsoverhead bei DirectX ist immens im Vergleich zu OpenGL oder Glide.
OpenGL und Glide haben also bei dynamisch zu ladenden Texturen einen Vorteil, und hier liegt der Hund begraben: bei den Texturmassen, die Diablo2 hat, mssen fast alle Texturen dynamisch verwaltet werden. Und an dieser Stelle versagt Direct3D: das dynamische Laden von Texturen dauert eine ganze Ewigkeit (bei OpenGL nur 'ne Halbe)

Um diese Probleme zu umgehen muss der Wrapper u.A. mehr Texturen erstellen, als in Glide gerade bentigt werden: bei 16Mb simuliertem Textur-Speicher kann der Wrapper durchaus 24MB Texturen in OpenGL erstellen, hngt aber auch von den Einstellungen ab.

Fairerweise mchte ich aber erwhnen, dass man den Programmierern bei Blizzard keine voreiligen Vorwrfe machen darf:
dreht man einfach mal die Zeit zurck und schaut sich den Stand der Technik an, wie er war, als das Spiel programmiert wurde, so war man vor das Problem gestellt, dass man mit den wenigen Ressourcen, die die damalige Hardware bereitstellte, haushalten musste. So gesehen holt die Direct3D-Engine von Diablo2 tatschlich nahezu fast alles aus DirectX6 raus, was rauszuholen ist. Nur ist das halt nicht viel, bzw. die Technik hat sich soweit weiterentwickelt, dass man doch wieder mehr draus machen knnte. Nur msste man die Direct3D-Engine neu schreiben.....oder auf OpenGL wechseln........ oder die Grafikkarten-Hersteller liefern echte Glide-Treiber fr ihre Grafikkarten (DAS wre optimal, dann knnte man auch auf den Wrapper verzichten, aber ob sie sich jemals diese Mhe machen werden?)

Aber zurck zum Wrapper
selbiger nutzt wie schon erwhnt OpenGL und stellt hier auch Ansprche:
Es werden folgende Extensions fr die korrekte Darstellung bentigt:
GL_EXT_texture_env_combine
GL_EXT_bgra
folgende Extensions sind vorteilhaft:
GL_EXT_vertex_array
GL_ATI_fragment_shader
GL_ARB_fragment_program
GL_EXT_paletted_texture
GL_EXT_shared_texture_palette
GL_EXT_packed_pixels
WGL_ARB_render_texture

Darum sollte der OpenGL-Treiber der Grafikkarte mindestens die OpenGL1.3-Spezifikation erfllen.

werden obendrein noch die Extensions GL_EXT_paletted_texture, GL_ATI_fragment_shader und/oder GL_ARB_fragment_program untersttzt, so werden (wenn aktiviert) 8Bit-Texturen verwendet, was das Nachladen von Texturen signifikant beschleunigt.

Da der Wrapper OpenGL benutzt, existiert hier auch der 60Hz-Bug, wenn als Betriebssystem Windows2000 oder WindowsXP installiert ist und die Bildwiederholfrequenz nicht manuell eingestellt wurde. Lsungen zu diesem Bug gibt es im Internet zuhauf: einfach in eine Suchmaschine eintippen oder mal bei den Internet-Seiten einiger PC-Zeitschriften reinsehen,
oder eben im Einrichtungsfrontend von dem Wrapper eine bestimmte Bildwiederholfrequenz vorgeben.


                              7.Versionsnderungen:


Version 1.4e:
in der glide3x.dll
kleinere Bugs bzgl. Mausbegrenzen und Taskwechsel behoben
Bercksichtigung eingebaut, dass D2 das Fenster u.U. nicht mehr minimiert, wenn das Spiel nicht mehr im Vordergrund luft.
feste Gre von 1280x1024 auf 1280x960 korrigiert
in der glide-init.exe
die Einstellungen knnen nun in eine TXT-Datei exportiert werden

Version 1.4d:
in der glide3x.dll:
Frameraten-Begrenzung eingebaut.
Feste Fenster-Gre eingebaut.
der Wrapper merkt sich bei Bedarf die Fenster-Position.
32-Bit ist nun standard
GL_EXT_vertex_array ist nun per Standard deaktiviert.
32MB  simulierter Grafikspeicher ist nun standard
in der glide-init.exe:
der Grafikkarten-Texturspeicher-Durchsatz wird nun auch in einem Diagramm dargestellt. Anhand dieses Diagramms kann der Wrapper darauf eingestellt werden, von einem bestimmten Grafikkarten-Speicher auszugehen.

Version 1.4c:
in der glide3x.dll:
Bug behoben, GL_EXT_vertex_array betreffend. Diese Extension sollte nun auch mit neueren Grafikkarten-Treibern funktionieren.
Breitbild-Anpassung separat einstellbar gemacht.
kleinere Bugs bzgl. der Status-Anzeige behoben.
Workaround fr den "Gidbinn-Bug" eingefgt
in der glide-init.exe:
der Grafikkarten-Textur-Speicher wird nun mittels OpenGL ermittelt
die Angabe fr den Textur-Speicher wird auf maximal 256MB begrenzt
der Testlauf wurde dahingehend gefixt, dass er nun auch auf echten 3dfx-Karten luft

Version 1.4b
in der glide3x.dll:
Bug behoben, der auftrat, wenn Maus begrenzen aktiviert war und man ingame via ALT-ENTER von Fenstermodus auf Desktopauflsung gewechselt hatte
render to texture aufgesplittet in WGL_ARB_render_texture und bilinearer Filter
in der glide-init.exe:
Fehler berichtigt

Version 1.4a
in der glide3x.dll:
bei Desktopauflsung wird das Seitenverhltnis in der Auflsung bercksichtigt.
bei den Shader-Texturen die Paletten-Textur modifiziert.
kleinere Fehler berichtigt.
in der glide-init.exe:
Fehler berichtigt

Version 1.4
in der glide3x.dll:
die Textur-Verwaltung komplett neu geschrieben: Die Texturen werden jetzt effizienter verwaltet.
8-Bit-Texturen knnen jetzt auch mit Shadern realisiert werden. Das Nachladen geht dadurch schneller vonstatten, als wenn auf 16-Bit-Texturen zurckgegriffen werden msste.
VSYNC kann jetzt vom Wrapper manuell eingestellt werden.
"DirectX fr Videos" entfernt.
in der glide-init.exe:
Fsaa/Multisampling entfernt : nutzlos bei D2
feste Gama-Tabelle entfernt
Render to texture hinzugefgt
Supersampling hinzugefgt
Shader-Gamma hinzugefgt
kein Gamma hinzugefgt
das Frontend komplett neu geschrieben.
Einstellungen werden jetzt in der Registry gespeichert.
OpenGL-Informationen knnen eingeholt werden, worauf auch kleinere Hilfestellungen gegeben werden knnen.
Das Frontend kann den Inhalt der Readme-Dateien darstellen.
Ferner wurde auch ein Testlauf eingefgt, mit dem der Wrapper auf Funktionalitt geprft werden kann, ohne dass man das Spiel starten muss.
desweiteren: Dateinamen geringfgig gendert

Version 1.3c
in der glide3x.dll:
der Wrapper rendert jetzt immer in ein eigenes Fenster, welches direkt ber dem von dem Spiel dargestellt wird. Dadurch ist es berhaupt erst mglich, Multisampling/FSAA zu verwenden, bzw. die Fenstergre anpassbar zu machen. Als kleinen Vorteil erhlt der Wrapper auch die Mglichkeit direkt zu erkennen, ob sich das Spiel minimiert hat, wodurch der Parameter "weicher Auflsungswechsel" nicht mehr ntig ist.
DirectX wird jetzt nur noch fr Videos verwendet, wenn berhaupt.
An der Render-Engine selbst hat sich aber nichts verndert.
in der gl32oglinit.exe:
"weicher Auflsungswechsel" entfernt
"DirectX zum Einrichten" umbenannt in "DirectX fr Videos"
"Textur fr Videos" hinzugefgt
Einstellmglichkeit fr die Bildwiederholfrequenz hinzugefgt
"Fenster extras" hinzugefgt
"Desktopauflsung" hinzugefgt
Einstellmglichkeit fr Multisampling/FSAA hinzugefgt
in den "readme"s:
faq hinzugefgt
desweiteren: Dateinamen geringfgig gendert

Version 1.3b
in der glide3x.dll
nderungen an den Combiner-Modi vorgenommen. Das Problem mit den Textur-Umrandungen ist damit erledigt. Auch wird jetzt schneller zwischen den Combiner-Modi gewechselt.
Wenn GL_EXT_vertex_array vom Grafikkarten-Treiber nicht untersttzt wird, greift der Wrapper auf eigene Konstrukte zurck. Der Wrapper luft dann auch auf diesen Rechnern, wenn auch nicht ganz so schnell. Ferner sind auch die Extensions GL_EXT_texture_env_combine und GL_EXT_bgra nicht mehr zwingend notwendig, allerdings wird es zu Grafikfehlern kommen, wenn diese nicht vom Grafikkarten-Treiber zur Verfgung gestellt werden.
nderungen an den Wrapper-Einstellungen werden jetzt auch on-the-fly bernommen: das Spiel minimieren, nderungen vornehmen, Spiel wieder in den Vordergrund bringen, fertig.
in der gl32oglinit.exe:
Frontend verndert
Schalter fr Info-Anzeige Reihenfolge hinzugefgt
Schalter fr Sprachen-Wechsel hinzugefgt
desweiteren gibt es jetzt eine deutsche "liesmich.txt" und eine englische "readme.txt"

Version 1.3a
in der glide3x.dll
kleine nderungen an den Combiner-Modi vorgenommen. Kompatibilittsprobleme sollten jetzt seltener auftreten.
in der gl32oglinit.exe
Schalter hinzugefgt:
Uhr
zentriert
DirectX zum Einrichten
feste Gamma-Tabelle
Maus begrenzen

Version 1.3
in der glide3x.dll
Vertex-Arrays werden verwendet und auch vorrausgesetzt. Der Prozessor wird dadurch beim Rendern der Bodentexturen weniger stark belastet. Der Wrapper kann angewiesen werden, beim Auflsungswechsel nicht vorher auf die Desktop-Auflsung zu wechseln. Der wechsel selbst geht dadurch schneller von statten, dafr wird beim Wechsel der Anwendung allerdings die Auflsung auch nicht zurckgesetzt.
in der gl32oglinit.exe:
Schalter fr weichen Auflsungswechsel hinzugefgt.
Schreibfehler berichtigt.

Version 1.2
in der glide3x.dll :
Wrapperinterne Texturverwaltung modifiziert. Der Prozessor wird dadurch weniger stark beansprucht, dafr werden aber noch mehr Texturen erstellt.
Neben der Framerate kann aber auch angezeigt werden, wieviel an Texturen durch den Wrapper tatschlich erstellt werden.
in der gl32oglinit.exe:
Schalter fr zustzliche Stats hinzugefgt.
Den Bereich fr den Textur-Speicher auf 8-108MB heraufgesetzt.

Version 1.1
in der glide3x.dll :
Die an Diablo2 gemeldete Textur-Speicher-Konfiguration gendert. Das Spiel verwaltet die Texturen dadurch effizienter.
Das Aktualisieren von 16-Bit-Texturen gendert.
in der gl32oglinit.exe:
den Schalter 8-Bit-Texturen in die drei Schalter GL_EXT_palettized_textures, GL_EXT_shared_texture_palette und GL_EXT_packed_pixels aufgespalten.
Den Standard-Wert fr den simulierten Textur-Speicher auf 16MB angehoben.
Den Bereich fr den Textur-Speicher auf 8-64MB gesetzt.


                              8.Hufig gestellte Fragen


Seit Erscheinen des Wrappers wurde schon die eine oder andere Frage an mich herangetragen. An dieser Stelle mchte ich die wichtigsten schonmal im Vorraus abhandeln.

1. Wenn ich den Wrapper unter Diablo2 benutze ist die Framerate miserabel (irgendwo bei 1FPS) und evtl. sogar in Fehlfarben.

Der Wrapper benutzt OpenGL und ist daher darauf angewiesen, dass der Computer auch mit korrekt laufenden OpenGL-Treibern eingerichtet ist. Warum jetzt kein korrekter OpenGL-Treiber vorliegt kann von Fall zu Fall unterschiedlich sein.
Mir sind bisher nur folgende Lsungsmglichkeiten bekannt:
- Grafikkarten-Treiber neu installieren
- bei vorhandensein mehrerer Grafikkarten oder Monitore: Sekundr-Anschlsse deaktivieren

Ferner gibt es fr einige ltere Grafikkarten berhaupt keine OpenGL-Treiber, in dem Fall hilft dann nur der komplette Austausch der Grafikkarte.

2. der Wrapper luft, D2 liefert auch ein korrektes Bild, aber die Framerate ist nicht besser, als vorher.

generell steht der Wrapper vor einem Problem: aus Sicht des Gesamt-Systems (also des kompletten Rechners an sich) stellt der Wrapper nur eine zustzliche Belastung dar. Um jetzt die Framerate nicht schlechter zu machen, als sie vorher war, bewirkt der Wrapper (im bertragenen Sinn) , dass die Last strker von der Grafikkarte, als vom Prozessor abgearbeitet wird. Wenn jetzt aber nun in einem Rechner gerade die Grafikkarte der Grund fr die schlechte Framerate ist (z.B. ein 3GHz-System mit ner Riva128), dann ist das nicht verwunderlich, dass die Framerate MIT dem Wrapper schlechter ist, als ohne. In solch einem Fall ist da der Vergleich mit dem DDraw-Mode von D2 eher angebracht.
Lsungsmglichkeit:
Hardware-Ebene:
- Herausfinden, welches das schwchste Bauteil im Rechner ist, und um/aufrsten: ein 3GHz Prozessor und GF FX5900 sind nutzlos, wenn in dem Rechner nur 64MB Ram eingebaut sind (nur so als Beispiel).
Software-Ebene:
- neue/andere Treiber installieren. Fr mehrere Bauteile (zum Beispiel die Grafikkarte) gibt es mehr als nur einen Treiber, und nicht immer ist der Neueste auch der Beste....
- Hintergrund-Programme knnen ebenso die Leistung des Rechners reduzieren, von Viren,Wrmern,Trojanern usw. mal ganz zu schweigen.
- wenn das Spiel ber den "-w"-Parameter im Fenstermodus betrieben wird muss auch der "-3dfx"-Parameter in der Verknpfung eingetragen sein: D2 benutzt sonst weder Glide noch Direct3D

3. ich spiele im SP und die Framerate will partout nicht ber 25FPS gehen, egal welcher Grafikmodus!

Das ist im SP normal, und von Blizzard auch beabsichtigt.
Wenn man seine lokalen Helden auch mit maximalen FPS spielen knnen will, muss man wohl oder bel ein Multiplayer-Game erstellen, wobei es dann allerdings egal ist, ob es ein TCP/IP oder open/closed bnet-game ist.

4. ich spiele im Multiplayer, aber mit dem Wrapper geht die Framerate nicht ber 60FPS.

Aller wahrscheinlichkeit nach ist der Monitor auf 60Hz gestellt. Entweder kann der Monitor tatschlich nicht mehr, oder es handelt sich hier um den "60Hz-Bug", welcher unter Windows NT/2K/XP vorkommt.
Einige Grafikkarten-Treiber liefern von sich aus eine Mglichkeit, den Bug zu umgehen, in anderen Fllen kommt man aber nicht umhin, einen "Refreshrate-fix" zu installieren.

5. die Framerate ist zwar nicht bei 60FPS aber dafr konstant bei (z.B.) 90FPS. Bei Anderen luft das Spiel aber auf wesentlich schlechteren Rechnern mit wesentlich besserer Framerate (z.B.200FPS).

normalerweise wird die Framerate durch den Grafikkarten-Treiber bei der Monitorfrequenz gecapt. Was auch nicht unlogisch ist: wenn der Monitor nur 90 Bilder pro Sekunde darstellen kann, warum sollte der Rechner dann 200 pro Sekunde berechnen (110 davon wandern doch ungesehen in den Mll)? Auer zum Angeben hat das den Vorteil, dass man an dieser hohen Framerate sehen kann, wieviel "Luft" der Rechner noch hat, also wieviel zustzliche Belastung der Rechner noch aushlt, bevor es sichtbare Einbuen (=Ruckeln) gibt.
dieses Begrenzen der Framerate kann man meistens in den Grafik-Optionen der Grafikkarte ein-/ausstellen und trgt den Namen "VSYNC" (Abkrzung fr "Vertikale SYNChronisation").

6. manchmal ist die Grafik so dunkel.

Der Wrapper hat es nicht geschafft, die Gamma-Einstellung vorzunehmen.
mir bisher bekannte Lsungsmglichkeiten:
- im Spiel Gamma und Kontrast nachstellen
- feststellen, ob ein Hintergrund-Programm gelegentlich auf den Bildschirm zugreift (oder zumindest zugreifen mchte) und diese/s deaktivieren.
- evtl. Grafikkarten-Treiber neu installieren
- im Grafikarten-Treiber nachschauen, ob dort eine Helligkeits-Steuerung vorgegeben werden kann.
- wenn vom Treiber untersttzt: shader-gamma im Frontend aktivieren

7. ich habe auch einige Mods zu dem Game installiert, luft der Wrapper auch damit?

Primr habe ich den Wrapper fr die Original-Fassung von dem Spiel programmiert. Ferner habe ich auch nicht die Zeit und Mue alle Mods zu dem Spiel auf Vertglichkeit hin zu testen. Das muss man dann schon selbst ausprobieren. Generell kann ich dazu nur sagen:
eigentlich sollte der Wrapper mit jedem Mod klarkommen, oder anders ausgedrckt: die Mods sollten mit Wrapper nicht mehr Probleme machen, als ohne.
Bisher habe ich den Wrapper nur in Kombination mit dem ChaosEmpire-Mod und Snej getestet, und konnte da bisher keine Fehler feststellen, auch wurde mir bisher noch kein Problem mit der Vertrglichkeit von "offizieller Seite" berichtet.
ich habe zwar auch den D2-Accelerator angetestet (und hier ebenfalls keine Fehler feststellen knnen), allerdings wurde schon mehrfach von Problemen mit dem Mod an sich berichtet.

8. ich habe den Wrapper jetzt installiert, luft auch gut, aber kann man da nicht noch mehr rausholen?

besser geht's eigentlich immer, irgendwie;-)
wenn der Wrapper noch auf der Standard-Einstellung luft, kann man auf jeden Fall noch was mit dem "Textur-Speicher" rausholen.
welche Einstellung hier jetzt nun optimal ist, wird wohl von Rechner zu Rechner unterschiedlich sein, ich sehe hier folgende Faustformel als gute Nherung an:
Bei Grafikkarten, die die 8-Bit-Texturen untersttzen knnen (z.B. alle Geforces und Radeons ab 8500):
Textur-Speicher = echter Grafikkarten-Speicher / 4 * 3
bei allen anderen Grafikkarten:
Textur-Speicher = echter Grafikkarten-Speicher / 8 * 3

9. Ich spiele mit dem Wrapper im Fenstermodus, aber jedes mal, wenn ich das Inventar ffne springt die Maus an die falsche Stelle.

Das Problem basiert darauf, dass die Glide-Engine von dem Spiel eigentlich gar nicht fr den Fensterbetrieb vorgesehen ist.
Das Problem kann aber glcklicherweise umgangen werden, indem man in der Spiel-Verknpfung die Start-Parameter -w und -3dfx anfgt. so dass da z.B.
"c:\spiele\Diablo II\Diablo II.exe" -w -3dfx
steht.

10. Vista, Wenn ich den Wrapper starte kommt nur ein schwarzes Bild/Fenster und oben Links vom Monitor werden nur Zeichen langsam durchlaufen.

Bitte erstmal vergewissern, ob bei Vista die Aero-Glass-Oberflche aktiv ist. Wenn ja, dann bitte testweise deaktivieren.
Der Wrapper nutzt die OpenGL-Schnittstelle. Unter Vista steht die echte OpenGL-Schnittstelle nicht zur Verfgung, wenn Aero-Glass aktiviert ist.
In der Start-Verknpfung von Diablo2 lsst sich aber einstellen, dass bei Programmstart Aero-Glass automatisch deaktiviert, und bei Verlassen des Programms auch wieder automatisch aktiviert wird: dazu bitte in den Eigenschaften der D2-Startverknpfung im Karteireiter 'Kompatibilitt' bei dem Kstchen 'Desktopgestaltung deaktivieren' den Haken setzen.
Der Wrapper kann auch selber Aero-glass temporr deaktivieren. Dafr unter renderer den Haken bei "Desktopgestaltung erhalten" entfernen.


                              9.Sonstiges


Dieser Wrapper ist Freeware und darf somit frei kopiert und weitergegeben werden, solange die Dateien selbst unverndert und beieinander bleiben.
Bei der Programmierung habe ich mein hchstes Augenmerk auf die Stabilitt gerichtet, nichtsdestotrotz kann ich keinerlei Garantie dafr geben, dass der Wrapper auf jedem System einwandfrei luft. Zu umfangreich sind die Mglichkeiten, die dafr sorgen knnen, dass der Wrapper denn doch rger auslst.

Aber immerhin, auf den Rechnern, auf denen ich den Wrapper bisher eingesetzt habe, ist der Performance-Gewinn gegenber dem Direct3D-Mode doch recht ansehnlich.
bye
  Sven Labusch